#ifndef _INS_TAB_1245__
#define _INS_TAB_1245__

const int INS_nop = 0;
const int INS_exit = 1;
const int INS_add___ = 2;
const int INS_fadd___ = 3;
const int INS_sub___ = 4;
const int INS_fsub___ = 5;
const int INS_mul___ = 6;
const int INS_fmul___ = 7;
const int INS_div___ = 8;
const int INS_fdiv___ = 9;
const int INS_mod___ = 10;
const int INS_mov__ = 11;
const int INS_mov___ = 12;
const int INS_gt___ = 13;
const int INS_fgt___ = 14;
const int INS_gte___ = 15;
const int INS_fgte___ = 16;
const int INS_lt___ = 17;
const int INS_flt___ = 18;
const int INS_lte___ = 19;
const int INS_flte___ = 20;
const int INS_eq___ = 21;
const int INS_feq___ = 22;
const int INS_neq___ = 23;
const int INS_fneq___ = 24;
const int INS_and___ = 25;
const int INS_or___ = 26;
const int INS_not__ = 27;
const int INS_neg__ = 28;
const int INS_fneg__ = 29;
const int INS_inc_ = 30;
const int INS_dec_ = 31;
const int INS_bnot__ = 32;
const int INS_shl___ = 33;
const int INS_shr___ = 34;
const int INS_band___ = 35;
const int INS_bxor___ = 36;
const int INS_bor___ = 37;
const int INS_jmp_ = 38;
const int INS_jz__ = 39;
const int INS_ret_ = 40;
const int INS_call_ = 41;
const int INS_push_ = 42;
const int INS_pop_ = 43;
const int INS_toint__ = 44;
const int INS_tofloat__ = 45;
const int INS_getint = 46;
const int INS_getfloat = 47;
const int INS_putint = 48;
const int INS_putfloat = 49;
const int INS_putln = 50;
const int INS_draw = 51;
const int INS_line = 52;
const int INS_rect = 53;
const int INS_circle = 54;
const int INS_size = 55;
const int INS_sin = 56;
const int INS_cos = 57;
const int INS_tan = 58;
const int INS_asin = 59;
const int INS_acos = 60;
const int INS_atan = 61;
const int INS_exp = 62;
const int INS_ln = 63;
const int INS_rand = 64;
const int INS_sqrt = 65;

const func_t FUNC_TABLE[] = {
	{	"nop",	INS_nop,	0	},
	{	"exit",	INS_exit,	0	},
	{	"add",	INS_add___,	3	},
	{	"fadd",	INS_fadd___,	3	},
	{	"sub",	INS_sub___,	3	},
	{	"fsub",	INS_fsub___,	3	},
	{	"mul",	INS_mul___,	3	},
	{	"fmul",	INS_fmul___,	3	},
	{	"div",	INS_div___,	3	},
	{	"fdiv",	INS_fdiv___,	3	},
	{	"mod",	INS_mod___,	3	},
	{	"mov",	INS_mov__,	2	},
	{	"mov",	INS_mov___,	3	},
	{	"gt",	INS_gt___,	3	},
	{	"fgt",	INS_fgt___,	3	},
	{	"gte",	INS_gte___,	3	},
	{	"fgte",	INS_fgte___,	3	},
	{	"lt",	INS_lt___,	3	},
	{	"flt",	INS_flt___,	3	},
	{	"lte",	INS_lte___,	3	},
	{	"flte",	INS_flte___,	3	},
	{	"eq",	INS_eq___,	3	},
	{	"feq",	INS_feq___,	3	},
	{	"neq",	INS_neq___,	3	},
	{	"fneq",	INS_fneq___,	3	},
	{	"and",	INS_and___,	3	},
	{	"or",	INS_or___,	3	},
	{	"not",	INS_not__,	2	},
	{	"neg",	INS_neg__,	2	},
	{	"fneg",	INS_fneg__,	2	},
	{	"inc",	INS_inc_,	1	},
	{	"dec",	INS_dec_,	1	},
	{	"bnot",	INS_bnot__,	2	},
	{	"shl",	INS_shl___,	3	},
	{	"shr",	INS_shr___,	3	},
	{	"band",	INS_band___,	3	},
	{	"bxor",	INS_bxor___,	3	},
	{	"bor",	INS_bor___,	3	},
	{	"jmp",	INS_jmp_,	1	},
	{	"jz",	INS_jz__,	2	},
	{	"ret",	INS_ret_,	1	},
	{	"call",	INS_call_,	1	},
	{	"push",	INS_push_,	1	},
	{	"pop",	INS_pop_,	1	},
	{	"toint",	INS_toint__,	2	},
	{	"tofloat",	INS_tofloat__,	2	},
	{	"getint",	INS_getint,	0	},
	{	"getfloat",	INS_getfloat,	0	},
	{	"putint",	INS_putint,	0	},
	{	"putfloat",	INS_putfloat,	0	},
	{	"putln",	INS_putln,	0	},
	{	"draw",	INS_draw,	0	},
	{	"line",	INS_line,	0	},
	{	"rect",	INS_rect,	0	},
	{	"circle",	INS_circle,	0	},
	{	"size",	INS_size,	0	},
	{	"sin",	INS_sin,	0	},
	{	"cos",	INS_cos,	0	},
	{	"tan",	INS_tan,	0	},
	{	"asin",	INS_asin,	0	},
	{	"acos",	INS_acos,	0	},
	{	"atan",	INS_atan,	0	},
	{	"exp",	INS_exp,	0	},
	{	"ln",	INS_ln,	0	},
	{	"rand",	INS_rand,	0	},
	{	"sqrt",	INS_sqrt,	0	},
	{	"",	-1,	0	}
};

#endif
